package cn.bearspark.api.service.main;

import cn.bearspark.api.vo.main.comment.BldgPageVO;
import cn.bearspark.api.vo.main.comment.HappeningReqVO;
import cn.bearspark.api.vo.main.comment.LayerPageVO;
import cn.bearspark.api.vo.main.comment.ReplyReqVO;

/**
 * 评论模块的服务接口
 *
 * @author f
 */
public interface CommentService {

    /**
     * 分页查询动态的楼评论
     *
     * @param pageNum     评论的页数
     * @param pageSize    评论的条数
     * @param happeningId 待查询评论的动态 id
     * @param order       评论排序的方式
     * @return 楼评论的信息
     */
    BldgPageVO pageQueryHappening(Integer pageNum, Integer pageSize, Long happeningId, Integer order);

    /**
     * 分页查询层评论，按照时间顺序排列
     *
     * @param pageNum   评论的页数
     * @param pageSize  评论的条数
     * @param commentId 楼评论的 id
     * @return 层评论的信息
     */
    LayerPageVO pageQueryLayer(Integer pageNum, Integer pageSize, Long commentId);

    /**
     * 动态评论
     *
     * @param happeningReqVO 动态评论的请求对象
     */
    void commentHappening(HappeningReqVO happeningReqVO);

    /**
     * 回复评论
     *
     * @param replyReqVO 回复评论的请求对象
     */
    void replyComment(ReplyReqVO replyReqVO);

    /**
     * 删除评论
     *
     * @param commentId 待删除评论的 id
     */
    void delete(Long commentId);
}
